using System;
using System.Data;

namespace BizElements.Core
{
    /// <summary>SQL item. Item that is used in predicates, functions, update lists, insert lists and select lists.</summary>
    interface ISqlItem
    {
        #region Properties.

        /// <summary>Gets contained item.</summary>
        object Item { get; }

        /// <summary>Gets item type.</summary>
        SqlItemType ItemType { get; }

        /// <summary>Gets the SQL data type. DbType.Object if unknown.</summary>
        DbType DbType { get; }

        /// <summary>Gets .NET type. Object if unknown.</summary>
        Type DataType { get; }

        /// <summary>Gets the item's alias/name. May be <b>null</b>.</summary>
        string Alias { get; }

        #endregion
    }    
}
